package com.czp.menu.service;

import com.czp.menu.model.Icon;
import com.czp.menu.model.Menu;


public interface IMenuService {
	
	
	/** 
	 * 【描 述】：根据id获取"用户菜单"集合
	 * @param personId人员Id
	 * @return 菜单json
	 * @throws Exception
	 */
	String getMenuList(String personId) throws Exception;
	
	/** 
	 * 【描 述】：根据父ID查询"设置菜单"集合
	 * @param 父菜单ID
	 * @return "设置"菜单Json
	 * @throws Exception
	 */
	String getSettingsListByPid(String pid) throws Exception;
	
	/** 
	 * 【描 述】：根据父节点ID查询菜单节点集合
	 * @param menu(父节点ID, 菜单类型)
	 * @return 节点数据json
	 * @throws Exception
	 */
	String getMenuTreeByPid(Menu menu) throws Exception;
	
	/** 
	 * 【描 述】：菜单节点添加、删除、修改
	 * @param menu菜单实体
	 * @return 被影响的数量
	 * @throws Exception
	 */
	int menuOperator(Menu menu) throws Exception;
	
	/**
	 * 【描 述】：重新对节点进行排序
	 * @param 需要排序的Json
	 * @param 当前父节点ID
	 * @return 别影响的数量
	 * @throws Exception
	 */
	int sortMenuNode(String jsonData, String pid) throws Exception;
	
	/** 
	 * 【描 述】：更新父菜单节点leaf状态
	 * @param 父菜单ID
	 * @return 被影响的数量
	 * @throws Exception
	 */
	int updateParentLeaf(String pid) throws Exception;
	
	/** 
	 * 【描 述】：查询Icon图标样式
	 * @param Icon(start, limit)
	 * @return 样式Json
	 * @throws Exception
	 */
	String queryMenuIcon(Icon icon) throws Exception;
	
	/** 
	 * 【描 述】：查询根菜单信息
	 * @return 菜单Json
	 * @throws Exception
	 */
	String getMenuRootList() throws Exception;
	
	/** 
	 * 【描 述】：根据父节点id查询叶子节点
	 * @param 父节点id
	 * @return 节点Json
	 * @throws Exception
	 */
	String getMenuLeafByPid(String pid) throws Exception;
}
